
/**
 *
 */
package com.serviceprovider.business.module.admin.transaction.services.dao.interfaces;

//~--- non-JDK imports --------------------------------------------------------

import com.serviceprovider.business.module.admin.transaction.model.NewCsvReplica;

//~--- JDK imports ------------------------------------------------------------

import java.util.ArrayList;
import java.util.List;

/**
 * @author mrduongnv@gmail.com
 *
 */
public interface ITransactionImportDataService {

    /**
     * Insert transaction.
     *
     * @param transaction
     *            the transaction
     */
    void insertTransaction(NewCsvReplica transaction);

    ArrayList<String> getAllNonMatchingUserIds();

    /**
     * Update transaction.
     *
     * @param transaction
     *            the transaction
     */
    void updateTransaction(NewCsvReplica transaction);

    /**
     * Retrieve imported transaction data list.
     *
     * @return the list
     */
    List retrieveImportedTransactionDataList();

    /**
     * Retrieve imported transaction data list by history id.
     *
     * @param historyId
     *            the history id
     * @return the list
     */
    List<NewCsvReplica> retrieveImportedTransactionDataListByHistoryId(Integer historyId);

    /**
     * Check if transaction present.
     *
     * @param traceNumber
     *            the trace number
     * @return true, if successful
     */
    boolean checkIfTransactionPresent(String traceNumber);

    /**
     * Retrieve transaction csv.
     *
     * @param traceNumber
     *            the trace number
     * @return the transaction csv
     */
    NewCsvReplica retrieveTransactionCSV(String traceNumber);

    void insertBatchTransaction(List<NewCsvReplica> records);

    String[] saveIdMappings(String[] originalIds, String[] importedIds);

    void updateTransactions(String[] originalIds, String[] importedIds);
}



